home *** CD-ROM | disk | FTP | other *** search
- .DATA
- ;---───────════════════════════════════════════════════════════════───────----
- ERROR_TXT db "iNcORRECT fILE! :-P",0
- GOOD_TXT db " cORRECT !! :-)",0
-
- Fname db "CrkMe4.Dat",0
- hFile dd 0
-
- SBuff dd 0
-
- Table1 db 16 dup (0)
- Table2 db 16 dup (0)
-
- X db 0
- Y db 0
- Z db 0
- T db 0
-
- A1 db 0
- A2 db 0
- B1 db 0
- B2 db 0
- C1 db 0
- C2 db 0
-
- .CODE
- ;---───────════════════════════════════════════════════════════════───────----
- Crack_proc PROC
- USES ebx,ecx,edx,esi,edi,ebp ; Don't forget this
-
- Call CreateFileA , OFFSET Fname , 0C0000000h ,3,0,3,80h,0
- cmp eax , INVALID_HANDLE_VALUE
- jz Error
- mov hFile , eax
-
-
- Call ReadFile , hFile , OFFSET Table1 , 32 , OFFSET SBuff , NULL
- Cmp dword ptr SBuff , 32
- Mov ebx , 0
- Jb Close_File
-
- Mov esi , OFFSET Table1
- Call DeCode , esi, esi, 4
-
- Mov edi , OFFSET Table1
- Add edi , 12
- xor al , al
- Mov ecx , 4
- rep stosb
-
- Mov esi , OFFSET Table2
- Call DeCode , esi, esi, 4
-
- Mov edi , OFFSET Table2
- Add edi , 12
- xor al , al
- Mov ecx , 4
- rep stosb
-
- Mov ebx , 1
-
- Close_File:
- Call CloseHandle , hFile
- Exit:
- Cmp ebx , 0
- Jz Error
-
-
- Correct:
- Call SendMessage , IDC_EDIT1, WM_SETTEXT, 0 , OFFSET GOOD_TXT
- Call SendMessage , IDC_EDIT2, WM_SETTEXT, 0 , OFFSET GOOD_TXT
- RET
-
-
- Error:
- Call SendMessage , IDC_EDIT1, WM_SETTEXT, 0 , OFFSET ERROR_TXT
- Call SendMessage , IDC_EDIT2, WM_SETTEXT, 0 , OFFSET ERROR_TXT
- RET
-
- Crack_proc ENDP
-
- ;---───────════════════════════════════════════════════════════════───────----
-
- DeCode PROC D_from:DWORD, D_to:DWORD, Count:Byte
- Mov esi , dword ptr D_from
- Mov edi , dword ptr D_to
-
- @J1: Mov eax , dword ptr [esi]
- Mov dword ptr X , eax
- add esi , 4
-
- Sub byte ptr X , 20h ;X:=X-20h
- Sub byte ptr Y , 20h ;Y:=Y-20h
- Sub byte ptr Z , 20h ;Z:=Z-20h
- Sub byte ptr T , 20h ;T:=T-20h
-
- Mov al , byte ptr X
- Mov byte ptr A1 , al ;A:=X
-
- Mov al , byte ptr Y
- Mov bl , al ;Just save Y
- and al , 0fh
- Mov byte ptr B1 , al ;B1:=Y and $0f
-
- And bl , 0f0h
- shr bl , 4
- mov byte ptr A2 , bl ;A2:=( Y and $F0 ) shr 4
-
- Mov al , byte ptr Z
- mov bl , al ;Just save Z
- and al , 3
- MOv byte ptr C1 , al ;C1:=Z and $03
-
- and bl , 0fch
- shr bl , 2
- mov byte ptr B2 , bl ;B2:=( Z and $FC ) shr 2
-
- Mov al , byte ptr T
- mov byte ptr C2 , al ;C2:=T
-
- Mov al,A1
- Mov bl,A2
- Shl al, 2
- Or al,bl
- Mov [edi] , al
- Inc edi
-
- Mov al,B1
- Mov bl,B2
- Shl al, 4
- Or al,bl
- Mov [edi] , al
- Inc edi
-
- Mov al,C1
- Mov bl,C2
- Shl al, 6
- Or al,bl
- Mov [edi] , al
- Inc edi
- Dec byte ptr Count
- Jnz @J1
-
- Ret
- DeCode ENDP
-
- ;---───────════════════════════════════════════════════════════════───────----
-